<?php

class CreerClientAction extends Action{
	
	function execute( HttpRequest $request ){
			
			// on recupere les  instances de DAO dont on a besoin
			$DAOfactory=AbstractDAOFactory::getDaoFactory(AbstractDAOFactory::MYSQL);
			$clientDAO=$DAOfactory->getClientDAO();
			//on verifie que les parametres en voyes ne sont pas vides
			$param=array('prenom', 'nom', 'login', 'pass','telephone','email','adresse','ville','codepostal','sexe');
			$resultat=$this->isFieldsFilled($param,$request);
	
		if ($resultat==true){
			//on hydrrate notre objet client avec les valeurs envoyes par le form
			$client=new Client();
			$client->setPrenom($request->getParameter('prenom'));
			$client->setNom($request->getParameter('nom'));
			$client->setLogin($request->getParameter('login'));
			$client->setMotDePasse($request->getParameter('pass'));
			$client->setTelephone($request->getParameter('telephone'));
			$client->setEmail($request->getParameter('email'));
			$client->setAdresse($request->getParameter('adresse'));
			$client->setVille($request->getParameter('ville'));
			$client->setCodePostal($request->getParameter('codepostal'));
			$client->setSexe($request->getParameter('sexe'));
			//on recherche si un client avec le meme login existe
			if ($clientDAO->research($client)){
			//si c'est bon on insere en bd
				$clientDAO->insert($client);
				$listeClients=$clientDAO->getAll();
				$request->addObject('listeClients',$listeClients);
				return self::ACTION_OK;
			 }
			 else{
				//sinon on reste sur la meme page et on envoie un message
				$client=new Client();
				$request->addObject('client',$client);
				$request->addMessage('Un client avec le meme login existe deja dans la base');
				return self::ACTION_KO;
			}
			 
		}
		else{
			//Si les champs ne sont pas bien renseignés on envoie un message
			$client=new Client();
			$request->addObject('client',$client);
			$request->addMessage('Tout les champ ne sont pas correctement saisis');
			return self::ACTION_KO;
		}
		

	   
		
	}
	
	function isFieldsFilled(Array $param,$request){
		//on fait une simple verif de la présence des données coté serveur au cas ou l'utilisateur aurait
		//désactivé le javscript l'essentiel des controles etant realise cote client
		$retour=true;
		foreach($param as $cle=>$valeur){
			if ($request->getParameter($valeur)==""){
				$retour=false;
			}
		}
		return $retour;
	}
		
	

	
}